//
// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.2.8-b130911.1802 生成的
// 请访问 <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// 在重新编译源模式时, 对此文件的所有修改都将丢失。
// 生成时间: 2019.03.12 时间 12:12:00 PM CST 
//


package com.youhome.service.listhub;

import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.datatype.XMLGregorianCalendar;


/**
 * <p>ListingItemType complex type的 Java 类。
 * 
 * <p>以下模式片段指定包含在此类中的预期内容。
 * 
 * <pre>
 * &lt;complexType name="ListingItemType">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="Address" type="{http://rets.org/xsd/RETSCommons}Address"/>
 *         &lt;element name="ListPrice" type="{http://rets.org/xsd/RETSCommons}PriceWithOptionalFrequency"/>
 *         &lt;element name="ListPriceLow" type="{http://rets.org/xsd/RETSCommons}PriceWithOptionalFrequency" minOccurs="0"/>
 *         &lt;element name="AlternatePrices" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="AlternatePrice" type="{http://rets.org/xsd/Syndication/2012-03}AlternatePriceType" maxOccurs="unbounded"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="ListingURL" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
 *         &lt;element name="ProviderName" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="ProviderURL" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
 *         &lt;element name="ProviderCategory" type="{http://rets.org/xsd/RETSCommons}SourceProviderCategoryEnum"/>
 *         &lt;element name="LeadRoutingEmail" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="Bedrooms" type="{http://rets.org/xsd/RETSCommons}nullable-integer"/>
 *         &lt;element name="Bathrooms" type="{http://rets.org/xsd/RETSCommons}nullable-integer"/>
 *         &lt;element name="PropertyType" type="{http://rets.org/xsd/RETSCommons}PropertyTypeEnum"/>
 *         &lt;element name="PropertySubType" type="{http://rets.org/xsd/RETSCommons}PropertySubTypeEnum"/>
 *         &lt;element name="ListingKey" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *         &lt;element name="ListingCategory" type="{http://rets.org/xsd/RETSCommons}ListingCategoryEnum" minOccurs="0"/>
 *         &lt;element name="ListingStatus" type="{http://rets.org/xsd/RETSCommons}ListingStatusEnum" minOccurs="0"/>
 *         &lt;element name="MarketingInformation" type="{http://rets.org/xsd/RETSCommons}MarketingInformationType" minOccurs="0"/>
 *         &lt;element name="Photos" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="Photo" type="{http://rets.org/xsd/Syndication/2012-03}SimpleMediaType" maxOccurs="unbounded" minOccurs="0"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="DiscloseAddress" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="ShortSale" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="ListingDescription" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="MlsId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="MlsName" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="MlsNumber" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="LivingArea" type="{http://rets.org/xsd/RETSCommons}Area" minOccurs="0"/>
 *         &lt;element name="LotSize" type="{http://rets.org/xsd/RETSCommons}Area" minOccurs="0"/>
 *         &lt;element name="YearBuilt" type="{http://www.w3.org/2001/XMLSchema}gYear" minOccurs="0"/>
 *         &lt;element name="ListingDate" type="{http://www.w3.org/2001/XMLSchema}date" minOccurs="0"/>
 *         &lt;element name="TrackingItem" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element name="ListingTitle" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="FullBathrooms" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" minOccurs="0"/>
 *         &lt;element name="ThreeQuarterBathrooms" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" minOccurs="0"/>
 *         &lt;element name="HalfBathrooms" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" minOccurs="0"/>
 *         &lt;element name="OneQuarterBathrooms" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" minOccurs="0"/>
 *         &lt;element name="PartialBathrooms" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" minOccurs="0"/>
 *         &lt;element name="ForeclosureStatus" type="{http://rets.org/xsd/RETSCommons}ForeclosureStatusEnum" minOccurs="0"/>
 *         &lt;element name="ListingParticipants" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="Participant" type="{http://rets.org/xsd/Syndication/2012-03}SimpleParticipantType" maxOccurs="unbounded"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="VirtualTours" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="VirtualTour" type="{http://rets.org/xsd/Syndication/2012-03}SimpleMediaType" maxOccurs="unbounded"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="Videos" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="Video" type="{http://rets.org/xsd/Syndication/2012-03}SimpleMediaType" maxOccurs="unbounded"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="Offices" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="Office" type="{http://rets.org/xsd/Syndication/2012-03}SimpleOfficeType" maxOccurs="unbounded"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="Brokerage" type="{http://rets.org/xsd/Syndication/2012-03}BusinessType" minOccurs="0"/>
 *         &lt;element name="Franchise" type="{http://rets.org/xsd/Syndication/2012-03}BusinessType" minOccurs="0"/>
 *         &lt;element name="Builder" type="{http://rets.org/xsd/Syndication/2012-03}BusinessType" minOccurs="0"/>
 *         &lt;element name="PropertyManager" type="{http://rets.org/xsd/Syndication/2012-03}BusinessType" minOccurs="0"/>
 *         &lt;element name="Location" type="{http://rets.org/xsd/Syndication/2012-03}LocationType" minOccurs="0"/>
 *         &lt;element name="OpenHouses" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="OpenHouse" type="{http://rets.org/xsd/Syndication/2012-03}OpenHouseType" maxOccurs="unbounded"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="Taxes" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="Tax" type="{http://rets.org/xsd/Syndication/2012-03}TaxType" maxOccurs="unbounded"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="Expenses" minOccurs="0">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="Expense" type="{http://rets.org/xsd/RETSCommons}ExpensesType" maxOccurs="unbounded"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="DetailedCharacteristics" type="{http://rets.org/xsd/Syndication/2012-03}DetailedCharacteristicsType"/>
 *         &lt;element name="ModificationTimestamp" type="{http://rets.org/xsd/RETSCommons}ModificationTimestamp"/>
 *         &lt;element name="Disclaimer" type="{http://rets.org/xsd/RETSCommons}Disclaimer" minOccurs="0"/>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ListingItemType", namespace = "http://rets.org/xsd/Syndication/2012-03", propOrder = {
    "address",
    "listPrice",
    "listPriceLow",
    "alternatePrices",
    "listingURL",
    "providerName",
    "providerURL",
    "providerCategory",
    "leadRoutingEmail",
    "bedrooms",
    "bathrooms",
    "propertyType",
    "propertySubType",
    "listingKey",
    "listingCategory",
    "listingStatus",
    "marketingInformation",
    "photos",
    "discloseAddress",
    "shortSale",
    "listingDescription",
    "mlsId",
    "mlsName",
    "mlsNumber",
    "livingArea",
    "lotSize",
    "yearBuilt",
    "listingDate",
    "trackingItem",
    "listingTitle",
    "fullBathrooms",
    "threeQuarterBathrooms",
    "halfBathrooms",
    "oneQuarterBathrooms",
    "partialBathrooms",
    "foreclosureStatus",
    "listingParticipants",
    "virtualTours",
    "videos",
    "offices",
    "brokerage",
    "franchise",
    "builder",
    "propertyManager",
    "location",
    "openHouses",
    "taxes",
    "expenses",
    "detailedCharacteristics",
    "modificationTimestamp",
    "disclaimer"
})
public class ListingItemType {

    @XmlElement(name = "Address", required = true)
    protected Address address;
    @XmlElement(name = "ListPrice", required = true)
    protected PriceWithOptionalFrequency listPrice;
    @XmlElement(name = "ListPriceLow")
    protected PriceWithOptionalFrequency listPriceLow;
    @XmlElement(name = "AlternatePrices")
    protected AlternatePrices alternatePrices;
    @XmlElement(name = "ListingURL", required = true)
    @XmlSchemaType(name = "anyURI")
    protected String listingURL;
    @XmlElement(name = "ProviderName", required = true)
    protected String providerName;
    @XmlElement(name = "ProviderURL", required = true)
    @XmlSchemaType(name = "anyURI")
    protected String providerURL;
    @XmlElement(name = "ProviderCategory", required = true)
    protected SourceProviderCategoryEnum providerCategory;
    @XmlElement(name = "LeadRoutingEmail")
    protected String leadRoutingEmail;
    @XmlElement(name = "Bedrooms", required = true)
    protected String bedrooms;
    @XmlElement(name = "Bathrooms", required = true)
    protected String bathrooms;
    @XmlElement(name = "PropertyType", required = true)
    protected PropertyTypeEnum propertyType;
    @XmlElement(name = "PropertySubType", required = true)
    protected PropertySubTypeEnum propertySubType;
    @XmlElement(name = "ListingKey", required = true)
    protected String listingKey;
    @XmlElement(name = "ListingCategory")
    @XmlSchemaType(name = "token")
    protected ListingCategoryEnum listingCategory;
    @XmlElement(name = "ListingStatus")
    @XmlSchemaType(name = "token")
    protected ListingStatusEnum listingStatus;
    @XmlElement(name = "MarketingInformation")
    protected MarketingInformationType marketingInformation;
    @XmlElement(name = "Photos")
    protected Photos photos;
    @XmlElement(name = "DiscloseAddress")
    protected Boolean discloseAddress;
    @XmlElement(name = "ShortSale")
    protected Boolean shortSale;
    @XmlElement(name = "ListingDescription")
    protected String listingDescription;
    @XmlElement(name = "MlsId")
    protected String mlsId;
    @XmlElement(name = "MlsName")
    protected String mlsName;
    @XmlElement(name = "MlsNumber")
    protected String mlsNumber;
    @XmlElement(name = "LivingArea")
    protected Area livingArea;
    @XmlElement(name = "LotSize")
    protected Area lotSize;
    @XmlElement(name = "YearBuilt")
    @XmlSchemaType(name = "gYear")
    protected XMLGregorianCalendar yearBuilt;
    @XmlElement(name = "ListingDate")
    @XmlSchemaType(name = "date")
    protected XMLGregorianCalendar listingDate;
    @XmlElement(name = "TrackingItem")
    protected List<String> trackingItem;
    @XmlElement(name = "ListingTitle")
    protected String listingTitle;
    @XmlElement(name = "FullBathrooms")
    @XmlSchemaType(name = "nonNegativeInteger")
    protected BigInteger fullBathrooms;
    @XmlElement(name = "ThreeQuarterBathrooms")
    @XmlSchemaType(name = "nonNegativeInteger")
    protected BigInteger threeQuarterBathrooms;
    @XmlElement(name = "HalfBathrooms")
    @XmlSchemaType(name = "nonNegativeInteger")
    protected BigInteger halfBathrooms;
    @XmlElement(name = "OneQuarterBathrooms")
    @XmlSchemaType(name = "nonNegativeInteger")
    protected BigInteger oneQuarterBathrooms;
    @XmlElement(name = "PartialBathrooms")
    @XmlSchemaType(name = "nonNegativeInteger")
    protected BigInteger partialBathrooms;
    @XmlElement(name = "ForeclosureStatus")
    protected ForeclosureStatusEnum foreclosureStatus;
    @XmlElement(name = "ListingParticipants")
    protected ListingParticipants listingParticipants;
    @XmlElement(name = "VirtualTours")
    protected VirtualTours virtualTours;
    @XmlElement(name = "Videos")
    protected Videos videos;
    @XmlElement(name = "Offices")
    protected Offices offices;
    @XmlElement(name = "Brokerage")
    protected BusinessType brokerage;
    @XmlElement(name = "Franchise")
    protected BusinessType franchise;
    @XmlElement(name = "Builder")
    protected BusinessType builder;
    @XmlElement(name = "PropertyManager")
    protected BusinessType propertyManager;
    @XmlElement(name = "Location")
    protected LocationType location;
    @XmlElement(name = "OpenHouses")
    protected OpenHouses openHouses;
    @XmlElement(name = "Taxes")
    protected Taxes taxes;
    @XmlElement(name = "Expenses")
    protected Expenses expenses;
    @XmlElement(name = "DetailedCharacteristics", required = true)
    protected DetailedCharacteristicsType detailedCharacteristics;
    @XmlElement(name = "ModificationTimestamp", required = true)
    protected ModificationTimestamp modificationTimestamp;
    @XmlElement(name = "Disclaimer")
    protected Disclaimer disclaimer;

    /**
     * 获取address属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Address }
     *     
     */
    public Address getAddress() {
        return address;
    }

    /**
     * 设置address属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Address }
     *     
     */
    public void setAddress(Address value) {
        this.address = value;
    }

    /**
     * 获取listPrice属性的值。
     * 
     * @return
     *     possible object is
     *     {@link PriceWithOptionalFrequency }
     *     
     */
    public PriceWithOptionalFrequency getListPrice() {
        return listPrice;
    }

    /**
     * 设置listPrice属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link PriceWithOptionalFrequency }
     *     
     */
    public void setListPrice(PriceWithOptionalFrequency value) {
        this.listPrice = value;
    }

    /**
     * 获取listPriceLow属性的值。
     * 
     * @return
     *     possible object is
     *     {@link PriceWithOptionalFrequency }
     *     
     */
    public PriceWithOptionalFrequency getListPriceLow() {
        return listPriceLow;
    }

    /**
     * 设置listPriceLow属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link PriceWithOptionalFrequency }
     *     
     */
    public void setListPriceLow(PriceWithOptionalFrequency value) {
        this.listPriceLow = value;
    }

    /**
     * 获取alternatePrices属性的值。
     * 
     * @return
     *     possible object is
     *     {@link AlternatePrices }
     *     
     */
    public AlternatePrices getAlternatePrices() {
        return alternatePrices;
    }

    /**
     * 设置alternatePrices属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link AlternatePrices }
     *     
     */
    public void setAlternatePrices(AlternatePrices value) {
        this.alternatePrices = value;
    }

    /**
     * 获取listingURL属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getListingURL() {
        return listingURL;
    }

    /**
     * 设置listingURL属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setListingURL(String value) {
        this.listingURL = value;
    }

    /**
     * 获取providerName属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getProviderName() {
        return providerName;
    }

    /**
     * 设置providerName属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setProviderName(String value) {
        this.providerName = value;
    }

    /**
     * 获取providerURL属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getProviderURL() {
        return providerURL;
    }

    /**
     * 设置providerURL属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setProviderURL(String value) {
        this.providerURL = value;
    }

    /**
     * 获取providerCategory属性的值。
     * 
     * @return
     *     possible object is
     *     {@link SourceProviderCategoryEnum }
     *     
     */
    public SourceProviderCategoryEnum getProviderCategory() {
        return providerCategory;
    }

    /**
     * 设置providerCategory属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link SourceProviderCategoryEnum }
     *     
     */
    public void setProviderCategory(SourceProviderCategoryEnum value) {
        this.providerCategory = value;
    }

    /**
     * 获取leadRoutingEmail属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getLeadRoutingEmail() {
        return leadRoutingEmail;
    }

    /**
     * 设置leadRoutingEmail属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setLeadRoutingEmail(String value) {
        this.leadRoutingEmail = value;
    }

    /**
     * 获取bedrooms属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getBedrooms() {
        return bedrooms;
    }

    /**
     * 设置bedrooms属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setBedrooms(String value) {
        this.bedrooms = value;
    }

    /**
     * 获取bathrooms属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getBathrooms() {
        return bathrooms;
    }

    /**
     * 设置bathrooms属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setBathrooms(String value) {
        this.bathrooms = value;
    }

    /**
     * 获取propertyType属性的值。
     * 
     * @return
     *     possible object is
     *     {@link PropertyTypeEnum }
     *     
     */
    public PropertyTypeEnum getPropertyType() {
        return propertyType;
    }

    /**
     * 设置propertyType属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link PropertyTypeEnum }
     *     
     */
    public void setPropertyType(PropertyTypeEnum value) {
        this.propertyType = value;
    }

    /**
     * 获取propertySubType属性的值。
     * 
     * @return
     *     possible object is
     *     {@link PropertySubTypeEnum }
     *     
     */
    public PropertySubTypeEnum getPropertySubType() {
        return propertySubType;
    }

    /**
     * 设置propertySubType属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link PropertySubTypeEnum }
     *     
     */
    public void setPropertySubType(PropertySubTypeEnum value) {
        this.propertySubType = value;
    }

    /**
     * 获取listingKey属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getListingKey() {
        return listingKey;
    }

    /**
     * 设置listingKey属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setListingKey(String value) {
        this.listingKey = value;
    }

    /**
     * 获取listingCategory属性的值。
     * 
     * @return
     *     possible object is
     *     {@link ListingCategoryEnum }
     *     
     */
    public ListingCategoryEnum getListingCategory() {
        return listingCategory;
    }

    /**
     * 设置listingCategory属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link ListingCategoryEnum }
     *     
     */
    public void setListingCategory(ListingCategoryEnum value) {
        this.listingCategory = value;
    }

    /**
     * 获取listingStatus属性的值。
     * 
     * @return
     *     possible object is
     *     {@link ListingStatusEnum }
     *     
     */
    public ListingStatusEnum getListingStatus() {
        return listingStatus;
    }

    /**
     * 设置listingStatus属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link ListingStatusEnum }
     *     
     */
    public void setListingStatus(ListingStatusEnum value) {
        this.listingStatus = value;
    }

    /**
     * 获取marketingInformation属性的值。
     * 
     * @return
     *     possible object is
     *     {@link MarketingInformationType }
     *     
     */
    public MarketingInformationType getMarketingInformation() {
        return marketingInformation;
    }

    /**
     * 设置marketingInformation属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link MarketingInformationType }
     *     
     */
    public void setMarketingInformation(MarketingInformationType value) {
        this.marketingInformation = value;
    }

    /**
     * 获取photos属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Photos }
     *     
     */
    public Photos getPhotos() {
        return photos;
    }

    /**
     * 设置photos属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Photos }
     *     
     */
    public void setPhotos(Photos value) {
        this.photos = value;
    }

    /**
     * 获取discloseAddress属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isDiscloseAddress() {
        return discloseAddress;
    }

    /**
     * 设置discloseAddress属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setDiscloseAddress(Boolean value) {
        this.discloseAddress = value;
    }

    /**
     * 获取shortSale属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isShortSale() {
        return shortSale;
    }

    /**
     * 设置shortSale属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setShortSale(Boolean value) {
        this.shortSale = value;
    }

    /**
     * 获取listingDescription属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getListingDescription() {
        return listingDescription;
    }

    /**
     * 设置listingDescription属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setListingDescription(String value) {
        this.listingDescription = value;
    }

    /**
     * 获取mlsId属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getMlsId() {
        return mlsId;
    }

    /**
     * 设置mlsId属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setMlsId(String value) {
        this.mlsId = value;
    }

    /**
     * 获取mlsName属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getMlsName() {
        return mlsName;
    }

    /**
     * 设置mlsName属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setMlsName(String value) {
        this.mlsName = value;
    }

    /**
     * 获取mlsNumber属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getMlsNumber() {
        return mlsNumber;
    }

    /**
     * 设置mlsNumber属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setMlsNumber(String value) {
        this.mlsNumber = value;
    }

    /**
     * 获取livingArea属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Area }
     *     
     */
    public Area getLivingArea() {
        return livingArea;
    }

    /**
     * 设置livingArea属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Area }
     *     
     */
    public void setLivingArea(Area value) {
        this.livingArea = value;
    }

    /**
     * 获取lotSize属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Area }
     *     
     */
    public Area getLotSize() {
        return lotSize;
    }

    /**
     * 设置lotSize属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Area }
     *     
     */
    public void setLotSize(Area value) {
        this.lotSize = value;
    }

    /**
     * 获取yearBuilt属性的值。
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public XMLGregorianCalendar getYearBuilt() {
        return yearBuilt;
    }

    /**
     * 设置yearBuilt属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public void setYearBuilt(XMLGregorianCalendar value) {
        this.yearBuilt = value;
    }

    /**
     * 获取listingDate属性的值。
     * 
     * @return
     *     possible object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public XMLGregorianCalendar getListingDate() {
        return listingDate;
    }

    /**
     * 设置listingDate属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link XMLGregorianCalendar }
     *     
     */
    public void setListingDate(XMLGregorianCalendar value) {
        this.listingDate = value;
    }

    /**
     * Gets the value of the trackingItem property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the trackingItem property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getTrackingItem().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link String }
     * 
     * 
     */
    public List<String> getTrackingItem() {
        if (trackingItem == null) {
            trackingItem = new ArrayList<String>();
        }
        return this.trackingItem;
    }

    /**
     * 获取listingTitle属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getListingTitle() {
        return listingTitle;
    }

    /**
     * 设置listingTitle属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setListingTitle(String value) {
        this.listingTitle = value;
    }

    /**
     * 获取fullBathrooms属性的值。
     * 
     * @return
     *     possible object is
     *     {@link BigInteger }
     *     
     */
    public BigInteger getFullBathrooms() {
        return fullBathrooms;
    }

    /**
     * 设置fullBathrooms属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link BigInteger }
     *     
     */
    public void setFullBathrooms(BigInteger value) {
        this.fullBathrooms = value;
    }

    /**
     * 获取threeQuarterBathrooms属性的值。
     * 
     * @return
     *     possible object is
     *     {@link BigInteger }
     *     
     */
    public BigInteger getThreeQuarterBathrooms() {
        return threeQuarterBathrooms;
    }

    /**
     * 设置threeQuarterBathrooms属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link BigInteger }
     *     
     */
    public void setThreeQuarterBathrooms(BigInteger value) {
        this.threeQuarterBathrooms = value;
    }

    /**
     * 获取halfBathrooms属性的值。
     * 
     * @return
     *     possible object is
     *     {@link BigInteger }
     *     
     */
    public BigInteger getHalfBathrooms() {
        return halfBathrooms;
    }

    /**
     * 设置halfBathrooms属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link BigInteger }
     *     
     */
    public void setHalfBathrooms(BigInteger value) {
        this.halfBathrooms = value;
    }

    /**
     * 获取oneQuarterBathrooms属性的值。
     * 
     * @return
     *     possible object is
     *     {@link BigInteger }
     *     
     */
    public BigInteger getOneQuarterBathrooms() {
        return oneQuarterBathrooms;
    }

    /**
     * 设置oneQuarterBathrooms属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link BigInteger }
     *     
     */
    public void setOneQuarterBathrooms(BigInteger value) {
        this.oneQuarterBathrooms = value;
    }

    /**
     * 获取partialBathrooms属性的值。
     * 
     * @return
     *     possible object is
     *     {@link BigInteger }
     *     
     */
    public BigInteger getPartialBathrooms() {
        return partialBathrooms;
    }

    /**
     * 设置partialBathrooms属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link BigInteger }
     *     
     */
    public void setPartialBathrooms(BigInteger value) {
        this.partialBathrooms = value;
    }

    /**
     * 获取foreclosureStatus属性的值。
     * 
     * @return
     *     possible object is
     *     {@link ForeclosureStatusEnum }
     *     
     */
    public ForeclosureStatusEnum getForeclosureStatus() {
        return foreclosureStatus;
    }

    /**
     * 设置foreclosureStatus属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link ForeclosureStatusEnum }
     *     
     */
    public void setForeclosureStatus(ForeclosureStatusEnum value) {
        this.foreclosureStatus = value;
    }

    /**
     * 获取listingParticipants属性的值。
     * 
     * @return
     *     possible object is
     *     {@link ListingParticipants }
     *     
     */
    public ListingParticipants getListingParticipants() {
        return listingParticipants;
    }

    /**
     * 设置listingParticipants属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link ListingParticipants }
     *     
     */
    public void setListingParticipants(ListingParticipants value) {
        this.listingParticipants = value;
    }

    /**
     * 获取virtualTours属性的值。
     * 
     * @return
     *     possible object is
     *     {@link VirtualTours }
     *     
     */
    public VirtualTours getVirtualTours() {
        return virtualTours;
    }

    /**
     * 设置virtualTours属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link VirtualTours }
     *     
     */
    public void setVirtualTours(VirtualTours value) {
        this.virtualTours = value;
    }

    /**
     * 获取videos属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Videos }
     *     
     */
    public Videos getVideos() {
        return videos;
    }

    /**
     * 设置videos属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Videos }
     *     
     */
    public void setVideos(Videos value) {
        this.videos = value;
    }

    /**
     * 获取offices属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Offices }
     *     
     */
    public Offices getOffices() {
        return offices;
    }

    /**
     * 设置offices属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Offices }
     *     
     */
    public void setOffices(Offices value) {
        this.offices = value;
    }

    /**
     * 获取brokerage属性的值。
     * 
     * @return
     *     possible object is
     *     {@link BusinessType }
     *     
     */
    public BusinessType getBrokerage() {
        return brokerage;
    }

    /**
     * 设置brokerage属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link BusinessType }
     *     
     */
    public void setBrokerage(BusinessType value) {
        this.brokerage = value;
    }

    /**
     * 获取franchise属性的值。
     * 
     * @return
     *     possible object is
     *     {@link BusinessType }
     *     
     */
    public BusinessType getFranchise() {
        return franchise;
    }

    /**
     * 设置franchise属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link BusinessType }
     *     
     */
    public void setFranchise(BusinessType value) {
        this.franchise = value;
    }

    /**
     * 获取builder属性的值。
     * 
     * @return
     *     possible object is
     *     {@link BusinessType }
     *     
     */
    public BusinessType getBuilder() {
        return builder;
    }

    /**
     * 设置builder属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link BusinessType }
     *     
     */
    public void setBuilder(BusinessType value) {
        this.builder = value;
    }

    /**
     * 获取propertyManager属性的值。
     * 
     * @return
     *     possible object is
     *     {@link BusinessType }
     *     
     */
    public BusinessType getPropertyManager() {
        return propertyManager;
    }

    /**
     * 设置propertyManager属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link BusinessType }
     *     
     */
    public void setPropertyManager(BusinessType value) {
        this.propertyManager = value;
    }

    /**
     * 获取location属性的值。
     * 
     * @return
     *     possible object is
     *     {@link LocationType }
     *     
     */
    public LocationType getLocation() {
        return location;
    }

    /**
     * 设置location属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link LocationType }
     *     
     */
    public void setLocation(LocationType value) {
        this.location = value;
    }

    /**
     * 获取openHouses属性的值。
     * 
     * @return
     *     possible object is
     *     {@link OpenHouses }
     *     
     */
    public OpenHouses getOpenHouses() {
        return openHouses;
    }

    /**
     * 设置openHouses属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link OpenHouses }
     *     
     */
    public void setOpenHouses(OpenHouses value) {
        this.openHouses = value;
    }

    /**
     * 获取taxes属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Taxes }
     *     
     */
    public Taxes getTaxes() {
        return taxes;
    }

    /**
     * 设置taxes属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Taxes }
     *     
     */
    public void setTaxes(Taxes value) {
        this.taxes = value;
    }

    /**
     * 获取expenses属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Expenses }
     *     
     */
    public Expenses getExpenses() {
        return expenses;
    }

    /**
     * 设置expenses属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Expenses }
     *     
     */
    public void setExpenses(Expenses value) {
        this.expenses = value;
    }

    /**
     * 获取detailedCharacteristics属性的值。
     * 
     * @return
     *     possible object is
     *     {@link DetailedCharacteristicsType }
     *     
     */
    public DetailedCharacteristicsType getDetailedCharacteristics() {
        return detailedCharacteristics;
    }

    /**
     * 设置detailedCharacteristics属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link DetailedCharacteristicsType }
     *     
     */
    public void setDetailedCharacteristics(DetailedCharacteristicsType value) {
        this.detailedCharacteristics = value;
    }

    /**
     * 获取modificationTimestamp属性的值。
     * 
     * @return
     *     possible object is
     *     {@link ModificationTimestamp }
     *     
     */
    public ModificationTimestamp getModificationTimestamp() {
        return modificationTimestamp;
    }

    /**
     * 设置modificationTimestamp属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link ModificationTimestamp }
     *     
     */
    public void setModificationTimestamp(ModificationTimestamp value) {
        this.modificationTimestamp = value;
    }

    /**
     * 获取disclaimer属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Disclaimer }
     *     
     */
    public Disclaimer getDisclaimer() {
        return disclaimer;
    }

    /**
     * 设置disclaimer属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Disclaimer }
     *     
     */
    public void setDisclaimer(Disclaimer value) {
        this.disclaimer = value;
    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="AlternatePrice" type="{http://rets.org/xsd/Syndication/2012-03}AlternatePriceType" maxOccurs="unbounded"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "alternatePrice"
    })
    public static class AlternatePrices {

        @XmlElement(name = "AlternatePrice", namespace = "http://rets.org/xsd/Syndication/2012-03", required = true)
        protected List<AlternatePriceType> alternatePrice;

        /**
         * Gets the value of the alternatePrice property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the alternatePrice property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getAlternatePrice().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link AlternatePriceType }
         * 
         * 
         */
        public List<AlternatePriceType> getAlternatePrice() {
            if (alternatePrice == null) {
                alternatePrice = new ArrayList<AlternatePriceType>();
            }
            return this.alternatePrice;
        }

    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="Expense" type="{http://rets.org/xsd/RETSCommons}ExpensesType" maxOccurs="unbounded"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "expense"
    })
    public static class Expenses {

        @XmlElement(name = "Expense", namespace = "http://rets.org/xsd/Syndication/2012-03", required = true)
        protected List<ExpensesType> expense;

        /**
         * Gets the value of the expense property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the expense property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getExpense().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link ExpensesType }
         * 
         * 
         */
        public List<ExpensesType> getExpense() {
            if (expense == null) {
                expense = new ArrayList<ExpensesType>();
            }
            return this.expense;
        }

    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="Participant" type="{http://rets.org/xsd/Syndication/2012-03}SimpleParticipantType" maxOccurs="unbounded"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "participant"
    })
    public static class ListingParticipants {

        @XmlElement(name = "Participant", namespace = "http://rets.org/xsd/Syndication/2012-03", required = true)
        protected List<SimpleParticipantType> participant;

        /**
         * Gets the value of the participant property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the participant property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getParticipant().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link SimpleParticipantType }
         * 
         * 
         */
        public List<SimpleParticipantType> getParticipant() {
            if (participant == null) {
                participant = new ArrayList<SimpleParticipantType>();
            }
            return this.participant;
        }

    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="Office" type="{http://rets.org/xsd/Syndication/2012-03}SimpleOfficeType" maxOccurs="unbounded"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "office"
    })
    public static class Offices {

        @XmlElement(name = "Office", namespace = "http://rets.org/xsd/Syndication/2012-03", required = true)
        protected List<SimpleOfficeType> office;

        /**
         * Gets the value of the office property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the office property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getOffice().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link SimpleOfficeType }
         * 
         * 
         */
        public List<SimpleOfficeType> getOffice() {
            if (office == null) {
                office = new ArrayList<SimpleOfficeType>();
            }
            return this.office;
        }

    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="OpenHouse" type="{http://rets.org/xsd/Syndication/2012-03}OpenHouseType" maxOccurs="unbounded"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "openHouse"
    })
    public static class OpenHouses {

        @XmlElement(name = "OpenHouse", namespace = "http://rets.org/xsd/Syndication/2012-03", required = true)
        protected List<OpenHouseType> openHouse;

        /**
         * Gets the value of the openHouse property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the openHouse property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getOpenHouse().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link OpenHouseType }
         * 
         * 
         */
        public List<OpenHouseType> getOpenHouse() {
            if (openHouse == null) {
                openHouse = new ArrayList<OpenHouseType>();
            }
            return this.openHouse;
        }

    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="Photo" type="{http://rets.org/xsd/Syndication/2012-03}SimpleMediaType" maxOccurs="unbounded" minOccurs="0"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "photo"
    })
    public static class Photos {

        @XmlElement(name = "Photo", namespace = "http://rets.org/xsd/Syndication/2012-03")
        protected List<SimpleMediaType> photo;

        /**
         * Gets the value of the photo property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the photo property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getPhoto().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link SimpleMediaType }
         * 
         * 
         */
        public List<SimpleMediaType> getPhoto() {
            if (photo == null) {
                photo = new ArrayList<SimpleMediaType>();
            }
            return this.photo;
        }

    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="Tax" type="{http://rets.org/xsd/Syndication/2012-03}TaxType" maxOccurs="unbounded"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "tax"
    })
    public static class Taxes {

        @XmlElement(name = "Tax", namespace = "http://rets.org/xsd/Syndication/2012-03", required = true)
        protected List<TaxType> tax;

        /**
         * Gets the value of the tax property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the tax property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getTax().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link TaxType }
         * 
         * 
         */
        public List<TaxType> getTax() {
            if (tax == null) {
                tax = new ArrayList<TaxType>();
            }
            return this.tax;
        }

    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="Video" type="{http://rets.org/xsd/Syndication/2012-03}SimpleMediaType" maxOccurs="unbounded"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "video"
    })
    public static class Videos {

        @XmlElement(name = "Video", namespace = "http://rets.org/xsd/Syndication/2012-03", required = true)
        protected List<SimpleMediaType> video;

        /**
         * Gets the value of the video property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the video property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getVideo().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link SimpleMediaType }
         * 
         * 
         */
        public List<SimpleMediaType> getVideo() {
            if (video == null) {
                video = new ArrayList<SimpleMediaType>();
            }
            return this.video;
        }

    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="VirtualTour" type="{http://rets.org/xsd/Syndication/2012-03}SimpleMediaType" maxOccurs="unbounded"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "virtualTour"
    })
    public static class VirtualTours {

        @XmlElement(name = "VirtualTour", namespace = "http://rets.org/xsd/Syndication/2012-03", required = true)
        protected List<SimpleMediaType> virtualTour;

        /**
         * Gets the value of the virtualTour property.
         * 
         * <p>
         * This accessor method returns a reference to the live list,
         * not a snapshot. Therefore any modification you make to the
         * returned list will be present inside the JAXB object.
         * This is why there is not a <CODE>set</CODE> method for the virtualTour property.
         * 
         * <p>
         * For example, to add a new item, do as follows:
         * <pre>
         *    getVirtualTour().add(newItem);
         * </pre>
         * 
         * 
         * <p>
         * Objects of the following type(s) are allowed in the list
         * {@link SimpleMediaType }
         * 
         * 
         */
        public List<SimpleMediaType> getVirtualTour() {
            if (virtualTour == null) {
                virtualTour = new ArrayList<SimpleMediaType>();
            }
            return this.virtualTour;
        }

    }

}
